Feat/pim/m20 kronknav - #3776
Conversation
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #3776 +/- ##
==========================================
- Coverage 78.08% 77.99% -0.10%
==========================================
Files 1380 1384 +4
Lines 130324 130662 +338
Branches 11310 11745 +435
==========================================
+ Hits 101761 101907 +146
- Misses 25320 25512 +192
Partials 3243 3243
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 4 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Greptile SummaryThis change adds M20 ROS/DDS control, Point-LIO localization, navigation components, camera relays, deployment support, and CPU-affinity handling for native children. A malformed lidar Confidence Score: 3/5Not safe to merge until Point-LIO rejects coordinate fields that extend past a point record. The affected validation and native read path were exercised with a valid control case and a malformed boundary-crossing coordinate field. AddressSanitizer reported the predicted out-of-bounds read for the malformed input. Files Needing Attention: dimos/robot/deeprobotics/m20/pointlio/cpp/main.cpp
|
|
this robot already runs vendor configured pointlio on the nav machine so we shouldn't run another pointlio. there is a zenoh forwarder service that uses DRDDS already written in that PR |
|
video transforms seem to be missing from robot, camera feeds should be visible in 3d |
|
we don't have to run rerun on the robot with limited resources, you should connect via zenoh to the robot, can give info on this |
If you can point me to where this pattern is established already would be great. |
|
leshy
left a comment
There was a problem hiding this comment.
I'm ok to merge, better design proposed with connection.py removed, replaced by onboard drdds bridge having connection interface
Adds the M20 integration machinery: native ROS/DDS command bridge, robot lifecycle/control, direct lidar and IMU ingestion into Point-LIO, KronkNav mapping/planning/control, and front/rear camera streams.
Extends NativeModuleConfig with optional Linux CPU affinity so Point-LIO, ray tracing, and MLS can be assigned to appropriate RK3588 cores, this is necessary as otherwise performance becomes severely degraded.
Some notes:
This runs fully on the RK3588, further tuning will be required as the mapper is always running behind and this gets worse as the global map grows, the bottleneck is RayTracingVoxelMap on this device.
Planning on flat terrain works consistently, planning over stairs is hit or miss. Naturally since the map is always behind dynamic obstacle avoidance does not work.
How to run:
On the M20:
Configure permissions:
./dimos/robot/deeprobotics/m20/deploy/setup.sh
Start blueprint:
dimos --transport lcm --rerun-host 0.0.0.0 run deeprobotics-m20-kronknav-control
Attach the control shell:
dimos --transport lcm shell
app.M20Connection.standup()
app.M20Connection.liedown()
On laptop:
dimos-viewer --connect rerun+http://10.21.31.104:9877/proxy
--ws-url ws://10.21.31.104:3030/ws
m20forgithub.mov